﻿Ext.layout.LayoutManager = new Ext.AbstractManager({

    //创建布局对象，defaultType是从外面传过来的，凡继承自Ext.lib.Comtainer的类都有布局功能
    //Ext.lib.Comtainer传来的defaultType是‘autocontainer’
    create: function (config, defaultType) {
        if (!config) {
            config = defaultType;
        }
        if (Ext.isString(config)) {
            return new this.types[config || defaultType];//根据布局类的名称创建布局类实例，构造函数没有参数
        }
        else if (Ext.isObject(config)) {
            if (config.isLayout) {
                return config;//如果已经是一个实例，则直接返回
            }
            else {
                return new this.types[config.type || defaultType](config);//如果是配置对象，根据配置对象创建实例
            }
        }
    }
});


Ext.regLayout = function () {
    return Ext.layout.LayoutManager.registerType.apply(Ext.layout.LayoutManager, arguments);
};